Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate client and server to improve candidate experience #2

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Conversation

joe-bruce
Copy link

Candidates have struggled to make heads or tails of this challenge, partly, because the client-server communication is simulated with an in-browser, in-memory "server". To try to improve that experience and make the problem more accessible, I've separated the server from the client and moved it to a local express server with similar behavior (simulated lag, simulated network failures).

This has the effect of making the Network tools in the browser useful for investigation and debugging. It also makes it easier to keep candidates from attempting to investigate the server code, which is not part of the exercise.

There are a few notable changes, however:

  1. The add route no longer returns the points in the response payload; a second request has to be made to refresh the points. This slows down even the "ideal", no-space-station implementation. A good candidate, however, has an excellent opportunity to make it better.
  2. The points route is no long called on interval. It is only called in response to known mutations on the server. This doesn't fit the scenario described (because astronauts are supposed to be drawing too) but still fits what we're actually asking the candidate to do/fix.
  3. The instructions (https://github.com/plangrid/Interviewing/blob/master/Technical%20Challenges/Frontend/Drawing%20in%20Space.md) will need to be updated in mostly cosmetic ways. Part 3 - C is no longer applicable however.

I went through it myself, both with id and request ordering solutions and I think I've preserved the main concepts while making standard browser tools more useful. I'd love thoughts, corrections, clean-ups, ideas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants